package me.lensfrex.vegetables.resopnse;

import lombok.Data;

/**
 * 统一的返回数据结构，含有字段code, message, data
 *
 * @param <T> data的类型
 */
@Data
public class UnityResponse<T> {

    /**
     * 请求处理的状态信息
     */
    private final ResultStatus resultStatus;

    /**
     * 请求的数据，其类型为声明返回类时指定的类型
     */
    private T data;

    public UnityResponse(ResultStatus resultCodes, T data) {
        this.resultStatus = resultCodes;
        this.data = data;
    }

    public UnityResponse() {
        resultStatus = ResultStatus.EMPTY_DATA;
        this.data = null;
    }

    // 手动拼成类似json的格式...
    // 当然真正生成json还是看gson之类专门的库吧...
    @Override
    public String toString() {
        return "{" + resultStatus +
                ", data: " + data +
                '}';
    }
}
